Interface between host processor and wireless processor for artificial reality

ABSTRACT

Disclosed herein are devices and methods related to an interface between a host processor and a wireless processor of a first device for maintaining an artificial reality session with a second device. In one aspect, the host processor is configured to provide data of the artificial reality session to the wireless processor, and the wireless processor is configured to transmit the data to the second device through a wireless medium. In one aspect, the host processor is configured to provide an indicator indicating an end of transmission of the data, to the wireless processor, to cause the wireless processor to transmit the indicator to the second device through the wireless medium, and to cause the host processor and the wireless processor to enter a sleep state in response to transmission of the indicator. The indicator may cause the second device to enter the sleep state.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.16/860,898 filed on Apr. 28, 2020, which is incorporated by referenceherein in its entirety for all purposes.

FIELD OF DISCLOSURE

The present disclosure is generally related to communication forrendering artificial reality, including but not limited to interfacebetween a host processor and a wireless processor for presenting anartificial reality.

BACKGROUND

Artificial reality such as a virtual reality (VR), an augmented reality(AR), or a mixed reality (MR) provides immersive experience to a user.In one example, a user wearing a head wearable display (HWD) can turnthe user's head, and an image of a virtual object corresponding to alocation of the HWD and a gaze direction of the user can be displayed onthe HWD to allow the user to feel as if the user is moving within aspace of artificial reality (e.g., a VR space, an AR space, or a MRspace).

In one implementation, an image of a virtual object is generated by aconsole communicatively coupled to the HWD. In one example, the HWDincludes various sensors that detect a location and/or orientation ofthe HWD, and transmits the detected location and/or orientation of theHWD to the console through a wired connection or a wireless connection.The console can determine a user's view of the space of the artificialreality according to the detected location and/or orientation of theHWD, and generate image data indicating an image of the space of theartificial reality corresponding to the user's view. The console cantransmit the image data to the HWD, by which the image of the space ofthe artificial reality corresponding to the user's view can be presentedto the user. In one aspect, the process of detecting the location of theHWD and the gaze direction of the user wearing the HWD, and renderingthe image to the user should be performed within a frame time (e.g., 11ms or 16 ms). Any latency between a movement of the user wearing the HWDand an image displayed corresponding to the user movement can causejudder, which may result in motion sickness and can degrade the userexperience.

SUMMARY

Various embodiments disclosed herein are related to a first device forartificial reality. In some embodiments, the first device includes awireless processor, and a host processor coupled to the wirelessprocessor. In some embodiments, the host processor is configured toprovide data of an artificial reality session to the wireless processor.In some embodiments, the wireless processor is configured to transmitthe data to a second device through a wireless medium. In someembodiments, the first device and the second device include a headwearable device and a console for maintaining the artificial realitysession. In some embodiments, the host processor is configured toprovide an indicator indicating an end of transmission of the data, tothe wireless processor. The indicator may cause the wireless processorto transmit the indicator to the second device through the wirelessmedium, and may cause the host processor and the wireless processor toenter a sleep state in response to transmission of the indicator.

In some embodiments, the host processor is configured to provide thedata to the wireless processor through a network layer protocol ofcommunication between the host processor and the wireless processor. Insome embodiments, the indicator causes the second device to enter thesleep state. In some embodiments, the host processor and the wirelessprocessor are scheduled to enter an active state at a first time for theartificial reality session. In some embodiments, the host processor isconfigured to provide another indicator to the wireless process to causethe wireless processor enter the active state at a second time for asubsequent artificial reality session, a difference between the firsttime and the second time corresponding to a frame time.

In some embodiments, the second device includes another host processorand another wireless processor coupled to the another host processor. Insome embodiments, the another wireless processor is configured toprovide the data from the wireless processor to the another hostprocessor. In some embodiments, the another host processor is configuredto render the artificial reality session according to the data. In someembodiments, the another wireless processor is configured to provide theindicator from the wireless processor to the another host processor. Insome embodiments, the another wireless processor and the another hostprocessor are configured to enter the sleep state in response to theindicator.

In some embodiments, the host processor is configured to provide, to thewireless processor, a command for synchronization. In some embodiments,the wireless processor is configured to provide a synchronizationbetween a clock of the wireless processor and a clock of the hostprocessor, in response to the command. In some embodiments, the wirelessprocessor is configured to transmit, to the second device through thewireless medium, the command. In some embodiments, another wirelessprocessor and another host processor of the second device are configuredto synchronize with the host processor according to the command. In someembodiments, the host processor is configured to schedule a time toenter an active state for the wireless processor, the host processor,the another wireless processor, and the another host processor.

Various embodiments disclosed herein are related to a method forrendering artificial reality. In some embodiments, the method includesproviding, by a host processor of a first device, data of an artificialreality session to a wireless processor coupled to the host processor.In some embodiments, the method includes transmitting, by the wirelessprocessor, the data to a second device through a wireless medium. Insome embodiments, the first device and the second device include a headwearable device and a console for maintaining the artificial realitysession. In some embodiments, the method includes providing, by the hostprocessor, an indicator indicating an end of transmission of the data,to the wireless processor. The indictor may cause the wireless processorto transmit the indicator to the second device through the wirelessmedium, and may cause the host processor and the wireless processor toenter a sleep state in response to transmission of the indicator.

In some embodiments, providing the data to the wireless processor of thefirst device includes providing the data to the wireless processorthrough a network layer of communication between the host processor andthe wireless processor. In some embodiments, the method includesentering, by the host processor and the wireless processor, an activestate at a first time for the artificial reality session. In someembodiments, the method further includes providing, by the hostprocessor, another indicator to the wireless processor to cause thewireless processor to enter the active state at a second time for asubsequent artificial reality session, a difference between the firsttime and the second time corresponding to a frame time.

In some embodiments, the wireless processor is configured to transmitthe data and the indicator to the second device, the indicator causingthe second device to enter the sleep state after rendering theartificial reality session according to the data. In some embodiments,the method further includes synchronizing, by the first device, thesecond device with the first device. The first device and the seconddevice may enter an active state for additional data of the artificialreality session according to the synchronization.

Various embodiments disclosed herein are related to a first device forartificial reality. In some embodiments, the first device includes awireless processor configured to receive, from a second device through awireless medium, data of an artificial reality session, and receive,from the second device through the wireless medium, an indicatorindicating an end of transmission of the data. In some embodiments, thefirst device includes a host processor coupled to the wirelessprocessor. In some embodiments, the host processor is configured topresent the artificial reality session according to the data, and entera sleep state, in response to the indicator after presenting theartificial reality session.

In some embodiments, the host processor and the wireless processor arescheduled to enter an active state for a subsequent artificial realitysession. In some embodiments, the wireless processor is configured toprovide the data and the indicator to the host processor through anetwork layer protocol of communication between the host processor andthe wireless processor. In some embodiments, the wireless processor isconfigured to receive, from the second device through the wirelessmedium, a command for synchronization. In some embodiments, the hostprocessor is configured to synchronize a first clock of the hostprocessor with a second clock of the wireless processor, in response tothe command.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not intended to be drawn to scale. Likereference numbers and designations in the various drawings indicate likeelements. For purposes of clarity, not every component can be labeled inevery drawing.

FIG. 1 is a diagram of a system environment including an artificialreality system, according to an example implementation of the presentdisclosure.

FIG. 2 is a diagram of a head wearable display, according to an exampleimplementation of the present disclosure.

FIG. 3 is a timing diagram of remotely presenting an artificial reality,according to an example implementation of the present disclosure.

FIG. 4 is an interaction diagram showing a process of a console and ahead wearable display exchanging data for artificial reality, accordingto an example implementation of the present disclosure.

FIG. 5 is an interaction diagram showing a process of synchronizingclocks of a console and a head wearable display, according to an exampleimplementation of the present disclosure.

FIG. 6 is a block diagram of a computing environment according to anexample implementation of the present disclosure.

DETAILED DESCRIPTION

Before turning to the figures, which illustrate certain embodiments indetail, it should be understood that the present disclosure is notlimited to the details or methodology set forth in the description orillustrated in the figures. It should also be understood that theterminology used herein is for the purpose of description only andshould not be regarded as limiting.

Disclosed herein are related to an interface between a first hostprocessor and a first wireless processor of a first device (e.g., a HWDor console) for maintaining an artificial reality session with a seconddevice (e.g., a console or HWD) including a second host processor and asecond wireless processor. The first host processor and the second hostprocessor may be central processing units, graphics processing units,image processors, or any processors for computing or processing datasuch as generating images of the artificial reality. The first wirelessprocessor and the second wireless processor may include or correspond tocommunication interfaces, communication modems, transceivers, or anyprocessors for transmitting and receiving data through a wirelessmedium, which may include processing received data for local use orprocessing data for transmitting. In one aspect, the first hostprocessor (e.g., of a console as the first device) generates data of theartificial reality session, and causes the first wireless processor totransmit the data to the second device through a wireless medium. Thesecond wireless processor (e.g., of a HWD as the second device) mayreceive the data through the wireless medium, and the second hostprocessor may render an artificial reality according to the datareceived by the wireless processor.

In some embodiments, the first host processor configures or causes thefirst device and the second device to enter a sleep state. In oneapproach, the first host processor generates an indicator forconfiguring the first device and the second device to enter the sleepstate (e.g., inactive, low power or power saving state). In one aspect,the indicator may indicate, include, or correspond to an end oftransmission of the data. The first host processor may provide, send orsignal the indicator to the first wireless processor. In response tocompleting transmission of the data, the first wireless processor maysignal, send or otherwise transmit the indicator to the second devicethrough the wireless medium. In response to transmission of theindicator, the first wireless processor and the first host processor mayenter the sleep state. The second wireless processor may receive theindicator through the wireless medium, and may provide the indicator tothe second host processor. In response to the indicator, the second hostprocessor may configure the second host processor and the secondwireless processor to enter the sleep state.

In some embodiments, the first host processor is scheduled to wake up ata scheduled time, and enter or initiate an active state (e.g., wake upor power up state). The scheduled time may be a frame time forcontinuing the (current) artificial reality session or enabling asubsequent artificial reality session. In response to waking up from thesleep state, the first host processor may cause or configure the firstwireless processor to wake up. Similarly, the second host processor maybe scheduled to wake up at the scheduled time. In response to waking upfrom the sleep state, the second host processor may cause or configurethe second wireless processor to wake up and/or initiate/enter theactive state. Accordingly, communication between the first device andthe second device can be established to continue the artificial realitysession or enable the subsequent artificial reality session.

In one aspect, the first device and the second device may communicatewith each other for rendering an artificial reality in a power efficientmanner. In one aspect, the first device and the second device operatingin the active state may consume more power as compared to operating inthe sleep state. Hence, by operating the first device and the seconddevice in the sleep up state when communication between the first deviceand the second device is not needed, power consumption of the firstdevice and the second device can be reduced.

Advantageously, the first host processor, the second host processor orboth can generate one or more instructions or commands to configure orcause the first device and the second device (e.g., the console and HWD)to transition between the active state and the sleep state in asynchronized manner to improve power efficiency. In one implementation,the first host processor, the first wireless processor, the secondwireless processor, and the second host processor may operate accordingto different (e.g., local) clocks. Any mismatch in the clocks may causeunsuccessful communication or loss of packets. For example, the secondwireless processor operating in the sleep state may not receive datatransmitted by the first wireless processor. To ensure successfulcommunication despite the mismatches in the clocks, a time period forthe active state can be increased while a time period for the sleepstate can be reduced. However, as the time period for the active stateis increased and the time period for the sleep state is reduced, powerconsumption of the first device and the second device may increase. Inone aspect, the first host processor and the second host processor maymaintain better synchronization than the first wireless processor andthe second wireless processor. In some embodiments, the first hostprocessor and/or the second host processor can generate instructions orcommands to maintain synchronization and configure operating states ofthe first host processor, the first wireless processor, the secondwireless processor, and the second host processor according to thesynchronization. Hence, mismatches in clocks of the first hostprocessor, the first wireless processor, the second wireless processor,and the second host processor can be reduced or avoided, such that thetime period for the sleep state can be increased and/or synchronized toimprove power efficiency.

FIG. 1 is a block diagram of an example artificial reality systemenvironment 100. In some embodiments, the artificial reality systemenvironment 100 includes a HWD 150 worn by a user, and a console 110providing content of artificial reality to the HWD 150. The HWD 150 maybe referred to as, include, or be part of a head mounted display (HMD),head mounted device (HMD), head wearable device (HWD), head worn display(HWD) or head worn device (HWD). The HWD 150 may detect its locationand/or orientation of the HWD 150 as well as a shape, location, and/oran orientation of the body/hand/face of the user, and provide thedetected location/or orientation of the HWD 150 and/or trackinginformation indicating the shape, location, and/or orientation of thebody/hand/face to the console 110. The console 110 may generate imagedata indicating an image of the artificial reality according to thedetected location and/or orientation of the HWD 150, the detected shape,location and/or orientation of the body/hand/face of the user, and/or auser input for the artificial reality, and transmit the image data tothe HWD 150 for presentation. In some embodiments, the artificialreality system environment 100 includes more, fewer, or differentcomponents than shown in FIG. 1. In some embodiments, functionality ofone or more components of the artificial reality system environment 100can be distributed among the components in a different manner than isdescribed here. For example, some of the functionality of the console110 may be performed by the HWD 150. For example, some of thefunctionality of the HWD 150 may be performed by the console 110.

In some embodiments, the HWD 150 is an electronic component that can beworn by a user and can present or provide an artificial realityexperience to the user. The HWD 150 may render one or more images,video, audio, or some combination thereof to provide the artificialreality experience to the user. In some embodiments, audio is presentedvia an external device (e.g., speakers and/or headphones) that receivesaudio information from the HWD 150, the console 110, or both, andpresents audio based on the audio information. In some embodiments, theHWD 150 includes sensors 155, eye trackers 160, a wireless processor165, a host processor 170, an electronic display 175, and a lens 180.These components may operate together to detect a location of the HWD150 and a gaze direction of the user wearing the HWD 150, and render animage of a view within the artificial reality corresponding to thedetected location and/or orientation of the HWD 150. In otherembodiments, the HWD 150 includes more, fewer, or different componentsthan shown in FIG. 1.

In some embodiments, the sensors 155 include electronic components or acombination of electronic components and software components that detecta location and an orientation of the HWD 150. Examples of the sensors155 can include: one or more imaging sensors, one or moreaccelerometers, one or more gyroscopes, one or more magnetometers, oranother suitable type of sensor that detects motion and/or location. Forexample, one or more accelerometers can measure translational movement(e.g., forward/back, up/down, left/right) and one or more gyroscopes canmeasure rotational movement (e.g., pitch, yaw, roll). In someembodiments, the sensors 155 detect the translational movement and therotational movement, and determine an orientation and location of theHWD 150. In one aspect, the sensors 155 can detect the translationalmovement and the rotational movement with respect to a previousorientation and location of the HWD 150, and determine a new orientationand/or location of the HWD 150 by accumulating or integrating thedetected translational movement and/or the rotational movement. Assumingfor an example that the HWD 150 is oriented in a direction 25 degreesfrom a reference direction, in response to detecting that the HWD 150has rotated 20 degrees, the sensors 155 may determine that the HWD 150now faces or is oriented in a direction 45 degrees from the referencedirection. Assuming for another example that the HWD 150 was located twofeet away from a reference point in a first direction, in response todetecting that the HWD 150 has moved three feet in a second direction,the sensors 155 may determine that the HWD 150 is now located at avector multiplication of the two feet in the first direction and thethree feet in the second direction.

In some embodiments, the eye trackers 160 include electronic componentsor a combination of electronic components and software components thatdetermine a gaze direction of the user of the HWD 150. In someembodiments, the HWD 150, the console 110 or a combination of them mayincorporate the gaze direction of the user of the HWD 150 to generateimage data for artificial reality. In some embodiments, the eye trackers160 include two eye trackers, where each eye tracker 160 captures animage of a corresponding eye and determines a gaze direction of the eye.In one example, the eye tracker 160 determines an angular rotation ofthe eye, a translation of the eye, a change in the torsion of the eye,and/or a change in shape of the eye, according to the captured image ofthe eye, and determines the relative gaze direction with respect to theHWD 150, according to the determined angular rotation, translation andthe change in the torsion of the eye. In one approach, the eye tracker160 may shine or project a predetermined reference or structured patternon a portion of the eye, and capture an image of the eye to analyze thepattern projected on the portion of the eye to determine a relative gazedirection of the eye with respect to the HWD 150. In some embodiments,the eye trackers 160 incorporate the orientation of the HWD 150 and therelative gaze direction with respect to the HWD 150 to determine a gatedirection of the user. Assuming for an example that the HWD 150 isoriented at a direction 30 degrees from a reference direction, and therelative gaze direction of the HWD 150 is −10 degrees (or 350 degrees)with respect to the HWD 150, the eye trackers 160 may determine that thegaze direction of the user is 20 degrees from the reference direction.In some embodiments, a user of the HWD 150 can configure the HWD 150(e.g., via user settings) to enable or disable the eye trackers 160. Insome embodiments, a user of the HWD 150 is prompted to enable or disablethe eye trackers 160.

In some embodiments, the wireless processor 165 includes an electroniccomponent or a combination of an electronic component and a softwarecomponent that communicates with the console 110. In some embodiments,the wireless processor 165 includes or is embodied as a transceiver or acommunication modem coupled to the transceiver for transmitting andreceiving data through a wireless medium. The wireless processor 165 maycommunicate with a wireless processor 115 of the console 110 through acommunication link. The communication link may be a wireless link.Examples of the wireless link can include a cellular communication link,a near field communication link, IEEE 801.11 based link (e.g., Wi-Fi),Bluetooth, 60 GHz wireless link, or any communication wirelesscommunication link. Through the communication link, the wirelessprocessor 165 may transmit to the console 110 data indicating thedetermined location and/or orientation of the HWD 150, the determinedgaze direction of the user, and/or hand tracking measurement. Moreover,through the communication link, the wireless processor 165 may receivefrom the console 110 image data indicating or corresponding to an imageto be rendered. In some embodiments, the wireless processor 165 includesor is coupled to a clock 168, and operates synchronously according tothe clock 168.

In some embodiments, the host processor 170 includes an electroniccomponent or a combination of an electronic component and a softwarecomponent that generates one or more images for display, for example,according to a change in view of the space of the artificial reality. Insome embodiments, the host processor 170 is implemented as a processor(or a graphical processing unit (GPU)) that executes instructions toperform various functions described herein. The host processor 170 mayreceive, through the wireless processor 165, image data describing animage of artificial reality to be rendered, and render the image throughthe electronic display 175. In some embodiments, the image data from theconsole 110 may be encoded, and the host processor 170 may decode theimage data to render the image. In some embodiments, the host processor170 receives, from the console 110, object information indicatingvirtual objects in the artificial reality space and depth informationindicating depth (or distances from the HWD 150) of the virtual objects.In one aspect, according to the image of the artificial reality, objectinformation, depth information from the console 110, and/or updatedsensor measurements from the sensors 155, the host processor 170 mayperform shading, reprojection, and/or blending to update the image ofthe artificial reality to correspond to the updated location and/ororientation of the HWD 150. In some embodiments, the host processor 170includes or is coupled to a clock 178, and operates synchronouslyaccording to the clock 178.

In some embodiments, the electronic display 175 is an electroniccomponent that displays an image. The electronic display 175 may, forexample, be a liquid crystal display or an organic light emitting diodedisplay. The electronic display 175 may be a transparent display thatallows the user to see through. In some embodiments, when the HWD 150 isworn by a user, the electronic display 175 is located proximate (e.g.,less than 3 inches) to the user's eyes. In one aspect, the electronicdisplay 175 emits or projects light towards the user's eyes according toimage generated by the host processor 170.

In some embodiments, the lens 180 is a mechanical component that altersreceived light from the electronic display 175. The lens 180 may magnifythe light from the electronic display 175, and correct for optical errorassociated with the light. The lens 180 may be a Fresnel lens, a convexlens, a concave lens, a filter, or any suitable optical component thatalters the light from the electronic display 175. Through the lens 180,light from the electronic display 175 can reach the pupils, such thatthe user can see the image displayed by the electronic display 175,despite the close proximity of the electronic display 175 to the eyes.

In some embodiments, the host processor 170 performs compensation tocompensate for any distortions or aberrations. In one aspect, the lens180 introduces optical aberrations such as a chromatic aberration, apin-cushion distortion, barrel distortion, etc. The host processor 170may determine a compensation (e.g., predistortion) to apply to the imageto be rendered to compensate for the distortions caused by the lens 180,and apply the determined compensation to the image from the hostprocessor 170. The host processor 170 may provide the predistorted imageto the electronic display 175.

In some embodiments, the console 110 is an electronic component or acombination of an electronic component and a software component thatprovides content to be rendered to the HWD 150. In one aspect, theconsole 110 includes a wireless processor 115 and a host processor 130.These components may operate together to determine a view (e.g., a FOVof the user) of the artificial reality corresponding to the location ofthe HWD 150 and the gaze direction of the user of the HWD 150, and cangenerate image data indicating an image of the artificial realitycorresponding to the determined view. The console 110 may provide theimage data to the HWD 150 for presentation of the artificial reality. Inother embodiments, the console 110 includes more, fewer, or differentcomponents than shown in FIG. 1.

In some embodiments, the wireless processor 115 is an electroniccomponent or a combination of an electronic component and a softwarecomponent that communicates with the HWD 150. In some embodiments, thewireless processor 115 includes or is embodied as a transceiver or acommunication modem coupled to the transceiver for transmitting andreceiving data through a wireless medium. The wireless processor 115 maybe a counterpart component to the wireless processor 165 to communicatewith the wireless processor 115 of the console 110 through acommunication link (e.g., wireless link). Through the communicationlink, the wireless processor 115 may receive from the HWD 150 dataindicating the determined location and/or orientation of the HWD 150,the determined gaze direction of the user, and/or the hand trackingmeasurement. Moreover, through the communication link, the wirelessprocessor 115 may transmit to the HWD 150 image data describing an imageto be rendered. In some embodiments, the wireless processor 115 includesor is coupled to a clock 118, and operates synchronously according tothe clock 118.

The host processor 130 can include or correspond to a component thatgenerates content to be rendered according to the location and/ororientation of the HWD 150. In some embodiments, the host processor 130includes or is embodied as one or more central processing units,graphics processing units, image processors, or any processors forgenerating images of the artificial reality. In some embodiments, thehost processor 130 may incorporate the gaze direction of the user of theHWD 150 and a user interaction in the artificial reality to generate thecontent to be rendered. In one aspect, the host processor 130 determinesa view of the artificial reality according to the location and/ororientation of the HWD 150. For example, the host processor 130 maps thelocation of the HWD 150 in a physical space to a location within anartificial reality space, and determines a view of the artificialreality space along a direction corresponding to the mapped orientationfrom the mapped location in the artificial reality space. The hostprocessor 130 may generate image data describing an image of thedetermined view of the artificial reality space, and transmit the imagedata to the HWD 150 through the wireless processor 115. The hostprocessor 130 may encode the image data describing the image, and cantransmit the encoded data to the HWD 150. In some embodiments, the hostprocessor 130 generates and provides the image data to the HWD 150periodically (e.g., every 11 ms or 16 ms). In some embodiments, the hostprocessor 130 includes or is coupled to a clock 138, and operatessynchronously according to the clock 138.

FIG. 2 is a diagram of a HWD 150, in accordance with an exampleembodiment. In some embodiments, the HWD 150 includes a front rigid body205 and a band 210. The front rigid body 205 includes the electronicdisplay 175 (not shown in FIG. 2), the lens 180 (not shown in FIG. 2),the sensors 155, the eye trackers 160A, 160B, the wireless processor165, and the host processor 170. In the embodiment shown by FIG. 2, thewireless processor 165, the host processor 170, and the sensors 155 arelocated within the front rigid body 205, and may not visible to theuser. In other embodiments, the HWD 150 has a different configurationthan shown in FIG. 2. For example, the wireless processor 165, the hostprocessor 170, the eye trackers 160A, 160B, and/or the sensors 155 maybe in different locations than shown in FIG. 2.

FIG. 3 is a timing diagram 300 of remotely presenting an artificialreality (e.g., using a HWD), according to an example implementation ofthe present disclosure. In some embodiments, the console 110 and the HWD150 transition between an active state 310 and a sleep state 350 in asynchronous manner to achieve power efficiency. In the active state 310,the console 110 and the HWD 150 may maintain a communication session toexchange data for rendering artificial reality. In the sleep state 350,the console 110 and the HWD 150 may stop or disable a communicationsession. In one aspect, the console 110 and the HWD 150 operating in theactive state 310 consume more power than the console 110 and the HWD 150operating in the sleep state 350. By operating the console 110 and theHWD 150 in the sleep up state 350 when communication between the console110 and the HWD 150 is not needed, power consumption of the console 110and the HWD 150 can be reduced.

In the active state 310, the HWD 150 may perform listen before transmit(LBT) 320 to determine whether the HWD 150 is able to transmit. Inresponse to determining that the HWD 150 is clear to send, the HWD 150may transmit sensor measurements 325 indicating a location and/ororientation of the HWD 150 to the console 110. In response totransmission of the sensor measurements 325, the HWD 150 may transmit anend of transmission 328 of the sensor measurements. The console 110 mayreceive the sensor measurements, and generate image data of a view of anartificial reality according to the sensor measurements. For example,the console 110 may map the location of the HWD 150 in a physical spaceto a location within the artificial reality space, and determine a viewof the artificial reality space along a direction corresponding to themapped orientation from the mapped location in the artificial realityspace. Then, the console 110 may generate the image data describing orindicating the determined view of the artificial reality space.

In the active state 310, the console 110 may perform LBT 330 todetermine whether the console 110 is able to transmit. In response todetermining that the console 110 is clear to send, the console 110 maytransmit the image data 335 of the view of the artificial reality to theHWD 150. In response to transmission of the image data, the console 110may transmit an end of transmission 338 of the image data. The HWD 150may receive the image data, and may render the image of the artificialreality according to the image data.

In one aspect, in response to completing the image data, the console 110and the HWD 150 may enter the sleep state 350. The console 110 and theHWD 150 operating in the sleep state 350 may consume less power than inthe active state 310. The console 110 and the HWD 150 may be scheduledto wake up at a scheduled time. The scheduled time may be a frame timefor continuing the artificial reality session or for enabling asubsequent artificial reality session. For example, the console 110 andthe HWD 150 may be scheduled to wake up every 11 ms or 16 ms forrendering a frame of the artificial reality.

In a subsequent active state 310′, the HWD 150 may repeat the processfor the subsequent frame. For example, the HWD 150 may perform LBT 360to determine whether the HWD 150 is able or clear to transmit/send. Inresponse to determining that the HWD 150 is clear to send, the HWD 150may transmit sensor measurements 365 indicating an updated locationand/or orientation of the HWD 150 to the console 110. In response totransmission of the sensor measurements 365, the HWD 150 may transmit anend of transmission 368 of the sensor measurements. In one aspect, theHWD 150 and the console 110 are configured to enter the active state 310at a first time, and enter the active state 310′ at a second time, wherea difference between the first time and the second time corresponds to aframe time (e.g., 11 ms or 16 ms).

FIG. 4 is an interaction diagram showing a process 400 of the console110 and the HWD 150 exchanging data for artificial reality, according toan example implementation of the present disclosure. In someembodiments, the process 400 is performed by the host processor 130 andthe wireless processor 115 of the console 110 and the host processor 170and the wireless processor 165 of the HWD 150. In some embodiments, theprocess 400 is performed by other entities or other components. In someembodiments, the process 400 includes more, fewer, or different stepsthan shown in FIG. 4.

In some embodiments, the host processor 130, the wireless processor 115,the wireless processor 165, and the host processor 170 enter 402, 404,406, 408 an active state from a sleep state at a scheduled time or awake up time. The scheduled time may be a frame time for exchanging dataassociated with artificial reality. In the active state, the hostprocessor 130, the wireless processor 115, the wireless processor 165,and the host processor 170 can operate together to initiate and/ormaintain a communication session for artificial reality. In the sleepstate, the host processor 130, the wireless processor 115, the wirelessprocessor 165, and the host processor 170 can suspend or end thecommunication session for the artificial reality. In one aspect, theconsole 110 and the HWD 150 operating in the sleep state consume lesspower than in the active state.

In some embodiments, the host processor 170 generates 410 sensor dataincluding sensor measurements. The sensor measurements may indicate alocation and/or orientation of the HWD 150. The host processor 170 mayprovide the sensor data to the wireless processor 165 for transmission.In some embodiments, in response to completing the providing of thesensor data or detecting an end of the sensor data, the host processor170 may generate an end of transmission (EOT) indicator indicating anend of the sensor data, and provide 412 the EOT indicator to thewireless processor 165.

In one approach, the wireless processor 165 upconverts the sensor dataand the EOT indicator to obtain a wireless signal, and transmits 414 thewireless signal through the wireless medium. The wireless processor 165may generate and transmit a single frame for the sensor data and the EOTindicator. Alternatively, the wireless processor 165 may generate andtransmit separate frames for the sensor data and the EOT indicator.

In some embodiments, the wireless processor 115 of the console 110receives one or more frames from the wireless processor 165 of the HWD150 through the wireless medium. The wireless processor 115 maydownconvert the received frame and provide 416, 418 sensor data and EOTindicator data to the host processor 130.

In some embodiments, the host processor 130 generates image data ofartificial reality, in response to the sensor data. In one approach, thehost processor 130 determines a view of an artificial realitycorresponding to the location and/or the orientation of the HWD 150. Thehost processor 130 may generate the image data describing or indicatingthe determined view of the artificial reality. The host processor 130can provide 420 the image data to the wireless processor 115. In someembodiments, the host processor 130 schedules a wake up time for asubsequent artificial reality session, and provides 422, to the wirelessprocessor 115, a wake-up schedule command instructing the wirelessprocessor 115 to wake up at the wake up time. In some embodiments, inresponse to completing the providing of the image data or detecting anend of the image data, the host processor 130 may generate an end oftransmission (EOT) indicator indicating an end of the image data, andprovide 424 the EOT indicator to the wireless processor 115. Afterproviding the EOT indicator, the host processor 130 may provide 435 asleep command to the wireless processor 115, and enter 472 the sleepstate. In some embodiments, the host processor 130 provides data,instructions, and/or commands to the wireless processor 115 through anetwork layer communication protocol (L3 layer protocol).

In some embodiments, the wireless processor 115 receives the image data,the wake-up schedule command, and the EOT indicator, and can transmit426 the received image data, the wake-up schedule command and the EOTindicator through a wireless medium to the HWD 150. In one approach, thewireless processor 115 upconverts the image data, the wake-up schedulecommand, and the EOT indicator to obtain a wireless signal, andtransmits the wireless signal through the wireless medium. The wirelessprocessor 115 may generate and transmit a single frame for the imagedata, the wake-up schedule command, and the EOT indicator.Alternatively, the wireless processor 115 may generate and transmitseparate frames for the image data, the wake-up schedule command, andthe EOT indicator. In response to the wake-up schedule command, thewireless processor 115 may be scheduled to wake up at the wake up time.In response to the sleep command, the wireless processor 115 may enter474 the sleep state after completing the wireless transmission.

In some embodiments, the wireless processor 165 of the HWD 150 receivesone or more frames from the wireless processor 115 of the console 110through the wireless medium. The wireless processor 165 may downconvertthe received frame and provide data, instructions or commands to thehost processor 170. The wireless processor 165 may provide data,instructions, or commands to the host processor 170 through a networklayer communication protocol (L3 layer protocol).

In one approach, the wireless processor 165 obtains the image data fromone or more frames received through the wireless medium, and provides428 the image data to the host processor 170. According to the imagedata, the host processor 170 may generate an image of the artificialreality as indicated by the image data. In some embodiments, the hostprocessor 170 may perform additional processes such as shading and areprojection for generating the image of the artificial reality. Thehost processor 170 may render or present the image of the artificialreality to a user of the HWD 150.

In one approach, the wireless processor 165 obtains the wake up timefrom one or more frames received through the wireless medium, andprovides 430 the wake up time to the host processor 170. The hostprocessor 170 may be scheduled to wake up at the wake up time. Inresponse to the wake up time, the host processor 170 may generate andprovide 440, to the wireless processor 165, a wake-up schedule commandinstructing the wireless processor 165 to wake up at the wake up time.The host processor 170 may provide the wake-up schedule command to thewireless processor 165 through a network layer communication protocol(L3 layer protocol).

In one approach, the wireless processor 165 obtains the EOT indicatorfrom one or more frames received through the wireless medium, andprovides 432 the EOT indicator to the host processor 170. In response tothe EOT indicator, the host processor 170 may generate and provide 445,to the wireless processor 165, a sleep command instructing the wirelessprocessor 165 to enter the sleep state. The host processor 170 mayprovide the sleep command to the wireless processor 165 through anetwork layer communication protocol (L3 layer protocol). In response tothe sleep command, the wireless processor 165 may enter 476 the sleepstate. After providing the sleep command, the host processor 170 mayenter 478 the sleep state. In some embodiments, the host processors 130,170 and the wireless processors 115, 165 can wake up at the wake up timeto enter 482, 484, 486, 488 the active state for the subsequentcommunication session for the artificial reality and repeat the process.

In some embodiments, the wake-up scheduling is performed selectively.For example, the wake-up scheduling may be performed for everypredetermined number of wake up events (e.g., every 5^(th) activestate). For another example, the wake-up scheduling may be performedupon receiving a request from a user. In case the wake-up scheduling isperformed selectively, the steps 422, 430, 440 can be omitted when thewake-up scheduling is not performed. In some embodiments, when thewake-up scheduling is performed, a single wake up time (or a subsequentwake up time) or multiple wake-up times can be scheduled.

In some embodiments, the host processor 130 or the host processor 170may generate a request to flush a transmit queue/buffer of the wirelessprocessor 115 or the wireless processor 165. In one example, the hostprocessor 130 provides a request to flush a transmit queue/buffer of thewireless processor 115 before the host processor 130 providing any datato the wireless processor or after the host processor providing the EOTindicator during the active state. Upon receiving the request, thewireless processor 115 may flush or discard any packet in the transmitqueue/buffer of the wireless processor 115. In addition, the wirelessprocessor 115 may transmit the request to flush and reason(s) for theflush to the wireless processor 165. The wireless processor 165 mayreceive the request to flush. In response to the request to flush, thewireless processor 165 may determine whether data in a receivequeue/buffer of the wireless processor 165 is provided to host processor170. After confirming that the data in the receive que of the wirelessprocessor 165 is provided to the host processor 170, the wirelessprocessor 165 may flush the receive queue/buffer.

Advantageously, the host processors 130, 170 providing commands orindicators to the wireless processors 115, 165 in a network layerprotocol (or L3 layer protocol) can provide implementation flexibility.In one aspect, the host processors 130, 170 configuring the wirelessprocessors 115, 165 to enter the sleep state or the active state allowsthe wireless processors 115, 165 to be controlled in an applicationlevel. Accordingly, less customization may be imposed on the wirelessprocessors 115, 165, such that the wireless processors 115, 165 can beformed or implemented by different vendors or manufacturers.

Advantageously, the host processors 130, 170 providing commands orindicators to the wireless processors 115, 165 in a network layerprotocol (or L3 layer protocol) can achieve power efficiency. In oneimplementation, the wireless processor 115 or the wireless processor 165may attempt to detect or determine an end of data from the hostprocessor 130 or the host processor 170. However, in suchimplementation, the wireless processor 115 or the wireless processor 165may monitor data from the host processor 130 or the host processor 170in the active state for an extended time period to determine whether endof data occurred or not. In one aspect, the host processor 130 or thehost processor 170 generating data for transmission is aware of when theend of data will occur, and can notify the wireless processor 115 or thewireless processor 165 to enter the sleep state. Accordingly, thewireless processor 115 or the wireless processor 165 may not detect ordetermine the end of data, such that the wireless processor 115 or thewireless processor 165 may operate in the active state for a reducedtime period to achieve power savings.

FIG. 5 is an interaction diagram showing a process 500 of the console110 and the HWD 150 performing synchronization, according to an exampleimplementation of the present disclosure. In some embodiments, theprocess 500 is performed by the host processor 130 and the wirelessprocessor 115 of the console 110, and by the host processor 170 and thewireless processor 165 of the HWD 150. In some embodiments, the process500 is performed by other entities or other components. In someembodiments, the process 500 includes more, fewer, or different stepsthan shown in FIG. 5.

In some embodiments, the wireless processor 115 transmits 505 a requestfor time synchronization function (TSF) to synchronize its clock with aclock of the wireless processor 165. In one approach, the clock of thewireless processor 115 and the clock of the wireless processor 165 canbe synchronized through a beacon or a probe response frame. The requestfor the time synchronization function may include a time stamp, at whichthe request for the time synchronization function is generated. In oneexample, the wireless processor 115 may transmit a probe response frameor a traffic indication map frame allowing synchronization or a timesynchronization function between the wireless processors 115, 165. Forexample, one of the wireless processors 115, 165 may transmit a proberesponse frame including a time stamp. In response to the probe responseframe, the other of the wireless processors 115, 165 may adjust itsclock according to the timestamp to synchronize.

In some embodiments, the host processor 130 generates 520 asynchronization command to synchronize a clock of the host processor 130according to a clock of the wireless processor 115. In some embodiments,the host processor 130 generates 520 the synchronization commandperiodically (every frame time or every 5^(th) frame time), or uponrequest. The host processor 130 may provide the synchronization commandto the wireless processor 115 through a data link layer protocol (level2 protocol) or a network layer protocol (level 3 protocol).

In some embodiments, in response to the synchronization command, thewireless processor 115 provides 525 to the host processor 130 aninterrupt signal and a timestamp, at which the interrupt signal isgenerated. In response to the timestamp, the host processor 130 maymeasure 528 a time delay or difference between a clock of the hostprocessor 130 and a clock of the wireless processor 115. For example,the host processor 135 determines an offset or a delay of the clock ofthe host processor 130 with respect to the clock of the wirelessprocessor 115.

In some embodiments, the host processor 170 generates 530 asynchronization command to synchronize a clock of the host processor 170according to a clock of the wireless processor 165. In some embodiments,the host processor 170 generates 530 the synchronization commandperiodically (every frame time or every 5^(th) frame time), or uponrequest. The host processor 170 may provide the synchronization commandto the wireless processor 165 through a data link layer protocol (level2 protocol) or a network layer protocol (level 3 protocol).

In some embodiments, in response to the synchronization command, thewireless processor 165 provides 535 to the host processor 170 aninterrupt signal and a timestamp, at which the interrupt signal isgenerated. In response to the timestamp, the host processor 170 maymeasure 538 a time delay or difference between a clock of the hostprocessor 170 and a clock of the wireless processor 165. For example,the host processor 170 determines an offset or a delay of the clock ofthe host processor 170 with respect to the clock of the wirelessprocessor 165.

In some embodiments, the host processor 130 provides 550 to the wirelessprocessor 115 for transmission the measured time difference between theclocks of the host processor 130 and the wireless processor 115. Thewireless processor 115 may receive the time difference, and upconvertthe time difference to obtain a wireless signal. The wireless processor115 may transmit 555 the wireless signal through a wireless medium. Thewireless processor 165 of the HWD 150 may receive the wireless signal,and downconvert the wireless signal to obtain the time differencebetween the clocks of the host processor 130 and the wireless processor115. The wireless processor 165 may provide 560 the time difference tothe host processor 170. The host processor 170 may compare i) the timedifference between the clocks of the host processor 130 and the wirelessprocessor 115, and ii) the time difference between the clocks of thehost processor 170 and the wireless processor 165, and adjust orsynchronize 570 the clock of the host processor 170 according to thecomparison, such that the time difference between the clocks of the hostprocessor 170 and the wireless processor 165 can match the timedifference between the clocks of the host processor 130 and the wirelessprocessor 115. Hence, clocks of the host processors 130, 170 and thewireless processors 115, 165 can be synchronized.

Advantageously, the synchronization performed according to the process500 allows the console 110 and the HWD 150 to maintain synchronization.In one approach, the host processors 130, 170 are embodied as a centralprocessing unit and/or a graphics processing unit that employ morereliable clocks than the wireless processors 115, 165 that may operateunder various operating states with varying clocks. Hence, by the hostprocessor 130 initiating the synchronization process 500 to synchronizeclocks of the wireless processors 115, 165 and the host processor 170,the console 110 and the HWD 150 can maintain better synchronization. Insome embodiments, the process 500 can be initiated by the host processor170 in a manner that the clocks of the host processor 130 and thewireless processors 115, 165 can be synchronized according to the clockof the host processor 170.

Various operations described herein can be implemented on computersystems. FIG. 6 shows a block diagram of a representative computingsystem 614 usable to implement the present disclosure. In someembodiments, the console 110, the HWD 150 or both of FIG. 1 areimplemented by the computing system 614. Computing system 614 can beimplemented, for example, as a consumer device such as a smartphone,other mobile phone, tablet computer, wearable computing device (e.g.,smart watch, eyeglasses, head wearable display), desktop computer,laptop computer, or implemented with distributed computing devices. Thecomputing system 614 can be implemented to provide VR, AR, MRexperience. In some embodiments, the computing system 614 can includeconventional computer components such as processors 616, storage device618, network interface 620, user input device 622, and user outputdevice 624.

Network interface 620 can provide a connection to a wide area network(e.g., the Internet) to which WAN interface of a remote server system isalso connected. Network interface 620 can include a wired interface(e.g., Ethernet) and/or a wireless interface implementing various RFdata communication standards such as Wi-Fi, Bluetooth, or cellular datanetwork standards (e.g., 3G, 4G, 5G, 60 GHz, LTE, etc.).

User input device 622 can include any device (or devices) via which auser can provide signals to computing system 614; computing system 614can interpret the signals as indicative of particular user requests orinformation. User input device 622 can include any or all of a keyboard,touch pad, touch screen, mouse or other pointing device, scroll wheel,click wheel, dial, button, switch, keypad, microphone, sensors (e.g., amotion sensor, an eye tracking sensor, etc.), and so on.

User output device 624 can include any device via which computing system614 can provide information to a user. For example, user output device624 can include a display to display images generated by or delivered tocomputing system 614. The display can incorporate various imagegeneration technologies, e.g., a liquid crystal display (LCD),light-emitting diode (LED) including organic light-emitting diodes(OLED), projection system, cathode ray tube (CRT), or the like, togetherwith supporting electronics (e.g., digital-to-analog oranalog-to-digital converters, signal processors, or the like). A devicesuch as a touchscreen that function as both input and output device canbe used. Output devices 624 can be provided in addition to or instead ofa display. Examples include indicator lights, speakers, tactile“display” devices, printers, and so on.

Some implementations include electronic components, such asmicroprocessors, storage and memory that store computer programinstructions in a computer readable storage medium (e.g., non-transitorycomputer readable medium). Many of the features described in thisspecification can be implemented as processes that are specified as aset of program instructions encoded on a computer readable storagemedium. When these program instructions are executed by one or moreprocessors, they cause the processors to perform various operationindicated in the program instructions. Examples of program instructionsor computer code include machine code, such as is produced by acompiler, and files including higher-level code that are executed by acomputer, an electronic component, or a microprocessor using aninterpreter. Through suitable programming, processor 616 can providevarious functionality for computing system 614, including any of thefunctionality described herein as being performed by a server or client,or other functionality associated with message management services.

It will be appreciated that computing system 614 is illustrative andthat variations and modifications are possible. Computer systems used inconnection with the present disclosure can have other capabilities notspecifically described here. Further, while computing system 614 isdescribed with reference to particular blocks, it is to be understoodthat these blocks are defined for convenience of description and are notintended to imply a particular physical arrangement of component parts.For instance, different blocks can be located in the same facility, inthe same server rack, or on the same motherboard. Further, the blocksneed not correspond to physically distinct components. Blocks can beconfigured to perform various operations, e.g., by programming aprocessor or providing appropriate control circuitry, and various blocksmight or might not be reconfigurable depending on how the initialconfiguration is obtained. Implementations of the present disclosure canbe realized in a variety of apparatus including electronic devicesimplemented using any combination of circuitry and software.

Having now described some illustrative implementations, it is apparentthat the foregoing is illustrative and not limiting, having beenpresented by way of example. In particular, although many of theexamples presented herein involve specific combinations of method actsor system elements, those acts and those elements can be combined inother ways to accomplish the same objectives. Acts, elements andfeatures discussed in connection with one implementation are notintended to be excluded from a similar role in other implementations orimplementations.

The hardware and data processing components used to implement thevarious processes, operations, illustrative logics, logical blocks,modules and circuits described in connection with the embodimentsdisclosed herein may be implemented or performed with a general purposesingle- or multi-chip processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA), or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. A generalpurpose processor may be a microprocessor, or, any conventionalprocessor, controller, microcontroller, or state machine. A processoralso may be implemented as a combination of computing devices, such as acombination of a DSP and a microprocessor, a plurality ofmicroprocessors, one or more microprocessors in conjunction with a DSPcore, or any other such configuration. In some embodiments, particularprocesses and methods may be performed by circuitry that is specific toa given function. The memory (e.g., memory, memory unit, storage device,etc.) may include one or more devices (e.g., RAM, ROM, Flash memory,hard disk storage, etc.) for storing data and/or computer code forcompleting or facilitating the various processes, layers and modulesdescribed in the present disclosure. The memory may be or includevolatile memory or non-volatile memory, and may include databasecomponents, object code components, script components, or any other typeof information structure for supporting the various activities andinformation structures described in the present disclosure. According toan exemplary embodiment, the memory is communicably connected to theprocessor via a processing circuit and includes computer code forexecuting (e.g., by the processing circuit and/or the processor) the oneor more processes described herein.

The present disclosure contemplates methods, systems and programproducts on any machine-readable media for accomplishing variousoperations. The embodiments of the present disclosure may be implementedusing existing computer processors, or by a special purpose computerprocessor for an appropriate system, incorporated for this or anotherpurpose, or by a hardwired system. Embodiments within the scope of thepresent disclosure include program products comprising machine-readablemedia for carrying or having machine-executable instructions or datastructures stored thereon. Such machine-readable media can be anyavailable media that can be accessed by a general purpose or specialpurpose computer or other machine with a processor. By way of example,such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, orother optical disk storage, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to carry or storedesired program code in the form of machine-executable instructions ordata structures and which can be accessed by a general purpose orspecial purpose computer or other machine with a processor. Combinationsof the above are also included within the scope of machine-readablemedia. Machine-executable instructions include, for example,instructions and data which cause a general purpose computer, specialpurpose computer, or special purpose processing machines to perform acertain function or group of functions.

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including” “comprising” “having” “containing” “involving”“characterized by” “characterized in that” and variations thereofherein, is meant to encompass the items listed thereafter, equivalentsthereof, and additional items, as well as alternate implementationsconsisting of the items listed thereafter exclusively. In oneimplementation, the systems and methods described herein consist of one,each combination of more than one, or all of the described elements,acts, or components.

Any references to implementations or elements or acts of the systems andmethods herein referred to in the singular can also embraceimplementations including a plurality of these elements, and anyreferences in plural to any implementation or element or act herein canalso embrace implementations including only a single element. Referencesin the singular or plural form are not intended to limit the presentlydisclosed systems or methods, their components, acts, or elements tosingle or plural configurations. References to any act or element beingbased on any information, act or element can include implementationswhere the act or element is based at least in part on any information,act, or element.

Any implementation disclosed herein can be combined with any otherimplementation or embodiment, and references to “an implementation,”“some implementations,” “one implementation” or the like are notnecessarily mutually exclusive and are intended to indicate that aparticular feature, structure, or characteristic described in connectionwith the implementation can be included in at least one implementationor embodiment. Such terms as used herein are not necessarily allreferring to the same implementation. Any implementation can be combinedwith any other implementation, inclusively or exclusively, in any mannerconsistent with the aspects and implementations disclosed herein.

Where technical features in the drawings, detailed description or anyclaim are followed by reference signs, the reference signs have beenincluded to increase the intelligibility of the drawings, detaileddescription, and claims. Accordingly, neither the reference signs northeir absence have any limiting effect on the scope of any claimelements.

Systems and methods described herein may be embodied in other specificforms without departing from the characteristics thereof. References to“approximately,” “about” “substantially” or other terms of degreeinclude variations of +/−10% from the given measurement, unit, or rangeunless explicitly indicated otherwise. Coupled elements can beelectrically, mechanically, or physically coupled with one anotherdirectly or with intervening elements. Scope of the systems and methodsdescribed herein is thus indicated by the appended claims, rather thanthe foregoing description, and changes that come within the meaning andrange of equivalency of the claims are embraced therein.

The term “coupled” and variations thereof includes the joining of twomembers directly or indirectly to one another. Such joining may bestationary (e.g., permanent or fixed) or moveable (e.g., removable orreleasable). Such joining may be achieved with the two members coupleddirectly with or to each other, with the two members coupled with eachother using a separate intervening member and any additionalintermediate members coupled with one another, or with the two memberscoupled with each other using an intervening member that is integrallyformed as a single unitary body with one of the two members. If“coupled” or variations thereof are modified by an additional term(e.g., directly coupled), the generic definition of “coupled” providedabove is modified by the plain language meaning of the additional term(e.g., “directly coupled” means the joining of two members without anyseparate intervening member), resulting in a narrower definition thanthe generic definition of “coupled” provided above. Such coupling may bemechanical, electrical, or fluidic.

References to “or” can be construed as inclusive so that any termsdescribed using “or” can indicate any of a single, more than one, andall of the described terms. A reference to “at least one of ‘A’ and ‘B’”can include only ‘A’, only ‘B’, as well as both ‘A’ and ‘B’. Suchreferences used in conjunction with “comprising” or other openterminology can include additional items.

Modifications of described elements and acts such as variations insizes, dimensions, structures, shapes and proportions of the variouselements, values of parameters, mounting arrangements, use of materials,colors, orientations can occur without materially departing from theteachings and advantages of the subject matter disclosed herein. Forexample, elements shown as integrally formed can be constructed ofmultiple parts or elements, the position of elements can be reversed orotherwise varied, and the nature or number of discrete elements orpositions can be altered or varied. Other substitutions, modifications,changes and omissions can also be made in the design, operatingconditions and arrangement of the disclosed elements and operationswithout departing from the scope of the present disclosure.

References herein to the positions of elements (e.g., “top,” “bottom,”“above,” “below”) are merely used to describe the orientation of variouselements in the FIGURES. The orientation of various elements may differaccording to other exemplary embodiments, and that such variations areintended to be encompassed by the present disclosure.

What is claimed is:
 1. A first device comprising: a wireless processor;and a host processor configured to: provide data of a communicationsession to the wireless processor, the wireless processor to transmitthe data to a second device through a wireless medium, and provide anindicator indicating an end of transmission of the data, to the wirelessprocessor, to cause: the wireless processor to transmit the indicator tothe second device through the wireless medium and to enter a sleep stateuntil a scheduled time for additional data of a subsequent communicationsession, and the host processor to enter another sleep state until thescheduled time, in response to the indicator.
 2. The first device ofclaim 1, wherein the host processor is configured to provide the data tothe wireless processor through a network layer protocol of communicationbetween the host processor and the wireless processor.
 3. The firstdevice of claim 1, wherein the indicator causes the second device toenter the sleep state.
 4. The first device of claim 1, wherein the hostprocessor and the wireless processor are scheduled to enter an activestate at a first time for the communication session.
 5. The first deviceof claim 4, wherein the host processor is configured to provide anotherindicator to the wireless processor to cause the wireless processor toenter the active state at the scheduled time for the subsequentcommunication session, a difference between the first time and thescheduled time corresponding to a frame time.
 6. The first device ofclaim 1, wherein the second device includes another host processor andanother wireless processor, wherein the another wireless processor isconfigured to provide the data from the wireless processor to theanother host processor.
 7. The first device of claim 6, wherein theanother wireless processor is configured to provide the indicator fromthe wireless processor to the another host processor, and wherein theanother wireless processor and the another host processor are configuredto enter the sleep state in response to the indicator.
 8. The firstdevice of claim 1, wherein the host processor is configured to provide,to the wireless processor, a command for synchronization, wherein thewireless processor is configured to synchronize a clock of the wirelessprocessor according to a clock of the host processor, in response to thecommand.
 9. The first device of claim 8, wherein the wireless processoris configured to transmit, to the second device through the wirelessmedium, the command, wherein another wireless processor and another hostprocessor of the second device are configured to synchronize with thehost processor according to the command.
 10. The first device of claim9, wherein the host processor is configured to schedule the scheduledtime to enter the active state for the wireless processor, the hostprocessor, the another wireless processor, and the another hostprocessor.
 11. A method comprising: providing, by a host processor of afirst device, data of a communication session to a wireless processor ofthe first device; transmitting, by the wireless processor, the data to asecond device through a wireless medium; and providing, by the hostprocessor, an indicator indicating an end of transmission of the data,to the wireless processor, to cause: the wireless processor to transmitthe indicator to the second device through the wireless medium and toenter a sleep state until a scheduled time for additional data of asubsequent communication session, and the host processor to enteranother sleep state until the scheduled time, in response totransmission the indicator.
 12. The method of claim 11, whereinproviding the data to the wireless processor of the first deviceincludes providing the data to the wireless processor through a networklayer of communication between the host processor and the wirelessprocessor.
 13. The method of claim 11, further comprising: entering, bythe host processor and the wireless processor, an active state at afirst time for the communication session.
 14. The method of claim 13,further comprising: providing, by the host processor, another indicatorto the wireless processor to cause the wireless processor to enter theactive state at the scheduled time for the subsequent communicationsession, a difference between the first time and the scheduled timecorresponding to a frame time.
 15. The method of claim 11, wherein thewireless processor is configured to transmit the data and the indicatorto the second device, the indicator causing the second device to enterthe sleep state in response to the indicator.
 16. The method of claim15, further comprising: synchronizing, by the first device, the seconddevice with the first device, the first device and the second device toenter an active state for additional data of an additional communicationsession according to the synchronization.
 17. A first device comprising:a wireless processor configured to: receive, from a second devicethrough a wireless medium, data of a communication session for anartificial reality, receive, from the second device through the wirelessmedium, an indicator indicating an end of transmission of the data,provide the data and the indicator to a host processor, and enter asleep state until a scheduled time for additional data of a subsequentcommunication session for the artificial reality; and the host processorconfigured to: present the artificial reality according to the data, andenter another sleep state until the scheduled time, in response to theindicator after presenting the artificial reality.
 18. The first deviceof claim 17, wherein the host processor and the wireless processor arescheduled to enter an active state for the subsequent communicationsession for the artificial reality.
 19. The first device of claim 17,wherein the wireless processor is configured to provide the data and theindicator to the host processor through a network layer protocol ofcommunication between the host processor and the wireless processor. 20.The first device of claim 17, wherein the wireless processor isconfigured to receive, from the second device through the wirelessmedium, a command for synchronization, and wherein the host processor isconfigured to synchronize a first clock of the host processor with asecond clock of the wireless processor, in response to the command.